#include "func.h"

void display(link *head)
{
    printf("\033c"); // 清屏
    link *tmp = head->next; // 获取第一个有效节点
    // 检查通讯录有无联系人存在
    if (tmp == NULL)
    {
        printf("当前没有联系人信息!\n");
        return;
    }
    // 定义一个指针指向链表最后一个节点
    link *end = head;
    while (end->next != NULL)
    {
        end = end->next;
    }
    // 将联系人按编号进行排序
    for (tmp; tmp != end; tmp = tmp->next)
    {
        for (link *i = tmp->next; i != NULL; i = i->next)
        {
            if (tmp->p.id > i->p.id)
            {
                con tmp2 = tmp->p;
                tmp->p = i->p;
                i->p = tmp2;
            }
        }
        // for (link *j = tmp; j != NULL; j = j->next)
        // {
        //     if ((j->p.id) > (j->next->p.id))
        //     {
        //         con tmp2 = j->p;
        //         j->p = j->next->p;
        //         j->next->p = tmp2;
        //     }
        // }
    }
    // 将头指针复位为有效节点
    tmp = head->next;
    // 输出成员信息
    printf("当前保存的好友信息为：\n");
    while (tmp != NULL)
    {
        printf("编号: %d\n", tmp->p.id);
        printf("姓名: %s\n", tmp->p.name);
        printf("年龄: %d\n", tmp->p.age);
        printf("电话: %s\n", tmp->p.tel);
        printf("地址: %s\n", tmp->p.addr);
        printf("-----------------------\n");
        tmp = tmp->next;
    }

    printf("按任意键继续:");
    getchar();
    getchar();
}